'''
1.list创建（3种）
2.list对象元素访问index，for
3.运算符:
(1).切片:取值范围左闭右开,包含start,不包含end位置元素
    [start:end]
    [start:end:step]
    start/end:
         +:取值方向从左到右,start默认0，end默认索引最大长度
         -:取值方向从右到左,start默认索引最大长度，end默认索引最大长度1
    step默认1/-1：+：从前往后数
               -：从后往前数
(2)算术运算
4.列表对象方法
5.列表常用的内置函数len()、max()、min()
'''
#list创建
listObj = ()

listName = [1,2,5,6,"55"]
print(listName)

list0bj = list("hello")
print(list0bj)

list0bj1 = [var for var in range(1,10)]
print(list0bj1)

#index访问元素
#len()函数：求个数或长度
for index in range(len(list0bj1)):
    print(list0bj1[index])

print("\n")

#for访问元素
for var in list0bj:
    print(var)

print("count:%d"%len(list0bj))

#切片
print(list0bj[:])
print(list0bj[1:4])
print(list0bj[1:4:2])
print(list0bj[::-1])
print(list0bj[:-2:-1])

#+/in
print(list0bj + list0bj1)
print('e' in list0bj)

#列表对象方法
list0bj.append("world")
print(list0bj)

list0bj.insert(1,'aaaa')
print(list0bj)

#内置函数
print(max(list0bj1))
print(sum(list0bj1))



'''
tuple:
tuple对象方法（只读类）
元组是不可变列表，元素不能进行改变（新增/删除）
元组只有一个元素的时候，后面必须加一个,例(1,)
与list相似,可类比
'''
#元组对象的创建
tpObj = (1,5,'hello',[2,6],(10,0))
print(tpObj)

tpObj1 = tuple([1,10,'a'])
print(tpObj1)

#元素访问index，for
for var in tpObj:
    print(var)

print("\n")

for i in range(len(tpObj)):
    print(tpObj[i])

print("\n")

print(tpObj[3])

#元组对象的方法
print("元素存在个数：%d"%tpObj.count(1))

'''
str字符串
类比list、tuple
'''
#string
strObj = 'hello'
strObj1 = "world"
strObj2 = "!"

print(strObj + strObj1 + strObj2)

strObj3 = str([1,7,[1,2],(10,)])
print(strObj3)

'''
set对象：无序
无法使用index，可用for
集合的元素不能重复,输出是无序的
'''

#set
setObj = {1,2,'aa',(56,)}
print(setObj)

setObj1 = set("hello")
print(setObj1)

setObj2 = {var for var in range(1,8)}
print(setObj2)

#for
for var in setObj:
    print(var)

'''
字典：
1.dict创建（3种）{key:value}\dict、推导式,key:value 键：值
'''

#字典
dictObj = {"202301":"Sam","202302":"Wang","202303":"Li"}
print(dictObj)

dictObj1 = dict([(1,'a'),(2,'b'),(3,'c')])
print(dictObj1)

dictObj2 = {key:key*2 for key in range(1,6)}
print(dictObj2)

#for
for key in dictObj.keys():
    print("%s:%s"%(key,dictObj[key]))
print("\n")
for key,value in dictObj.items():
    print("%s:%s"%(key,value))
